# -*- coding:utf-8 -*-
from PIL import Image
import os

linesep = os.linesep
sep = os.sep
rootpath = "D:\\Go\\image"
maxsize = (2048, 2048)

def resizeImage(start_dir):
    start_dir = start_dir.strip() # 删除行尾
    extend_name = ['.jpg','.png','.gif','.PNG','.jpeg','.JPG','.JPEG', '.SVG', '.svg'] # 查找的文件类型
    os.chdir(start_dir)
 
    for each_file in os.listdir(os.curdir):
        curfile = os.getcwd() + sep + each_file
        img_prop = os.path.splitext(each_file)
        if img_prop[1] in extend_name:
            try:
                im = Image.open(curfile)
            except:
                with open(rootpath + "/process.err.log", "a") as f:
                    f.write(curfile + " open error" + linesep)
            else:
                try:
                    im.thumbnail(maxsize, Image.ANTIALIAS)
                    im.save(img_prop[0] + "_new" + img_prop[1], quality=80, optimize=True)
                except:
                    im.close()
                    with open(rootpath + "/process.err.log", "a") as f:
                        f.write(curfile + " save error" + linesep)
 
        if os.path.isdir(curfile):
            resizeImage(curfile)
            os.chdir(os.pardir)

    print("processing " + start_dir)

if __name__ == '__main__':
    sdir = rootpath
    resizeImage(sdir)